package com.audition.threadtest;

/**
 * @author xukang
 * @date 2021-02-25 15:36
 */
public enum ThreadState {


    /**
     *      * 新建状态，线程被创建出来，但尚未启动时的线程状态
     * <p>
     *      
     */

    NEW,


    /**
     *      * 就绪状态，表示可以运行的线程状态，但它在排队等待来自操作系统的 CPU 资源
     * <p>
     *      
     */

    RUNNABLE,


    /**
     *      * 阻塞等待锁的线程状态，表示正在处于阻塞状态的线程
     * <p>
     *      * 正在等待监视器锁，比如等待执行 synchronized 代码块或者
     * <p>
     *      * 使用 synchronized 标记的方法
     * <p>
     *      
     */

    BLOCKED,


    /**
     *      * 等待状态，一个处于等待状态的线程正在等待另一个线程执行某个特定的动作。
     * <p>
     *      * 例如，一个线程调用了 Object.wait() 它在等待另一个线程调用
     * <p>
     *      * Object.notify() 或 Object.notifyAll()
     * <p>
     *      
     */

    WAITING,


    /**
     *      * 计时等待状态，和等待状态 (WAITING) 类似，只是多了超时时间，比如
     * <p>
     *      * 调用了有超时时间设置的方法 Object.wait(long timeout) 和 
     * <p>
     *      * Thread.join(long timeout) 就会进入此状态
     * <p>
     *      
     */

    TIMED_WAITING,


    /**

          * 终止状态，表示线程已经执行完成

          */

}


